{
    class User {
        name: string = 'ck';
    }

    enum Earth {
        East,
        South,
        West,
        North
    }

    // 引用类型
    let obj1: {} = {};
    let obj2: {} = { name: 'ck'};
    let obj3: {} = new User();
    let obj13: {} = new class extends User{};
    let obj4: {} = new Date();
    let obj5: {} = new Object();
    let obj14: {} = new RegExp('\\d+');
    let obj15: {} = /^\d+$/;
    // 函数也是引用类型
    let obj16: {} = User; // 构造函数
    let obj11: {} = new Function(); // 原始函数
    let obj17: {} = function a():void {}; // 普通函数
    let obj18: {} = (): void => {};// 函数表达式
    let obj22: {} = [1,'ck', {name: 'ck', flag: true}, () => {}]
    let obj23: {} = Earth; // 枚举实际上是一个对象字面量

    
    // 基本数据类型
    let obj6: {} = null;
    let obj7: {} = undefined;
    let obj8: {} = 'str';
    let obj9: {} = 12;
    let obj19: {} = NaN; // number类型
    let obj20: {} = Infinity; // number类型
    let obj10: {} = Symbol('id');
    let obj12: {} = true;
   
    // {}，不能表示 null, undefined
}

{
    class User {
        name: string = 'ck';
    }

    enum Earth {
        East,
        South,
        West,
        North
    }

    // 引用类型
    let obj1: Object = {};
    let obj2: Object = { name: 'ck'};
    let obj13: Object = new class extends User{};
    let obj4: Object = new Date();
    let obj5: Object = new Object();
    let obj16: Object = User;
    let obj3: Object = new User();
    let obj11: Object = new Function();
    let obj14: Object = new RegExp('\\d+');
    let obj15: Object = /^\d+$/;
    let obj22: Object = [1,'ck', {name: 'ck', flag: true}, () => {}]
    let obj23: {} = Earth; // 枚举实际上是一个对象字面量

    // 无法表示基本类型[number,string,boolean,symbol,null,undefined]
    let obj6: Object = null;
    let obj7: Object = undefined;
    let obj8: Object = 'str';
    let obj9: Object = 12;
    let obj21: Object = NaN; // number类型
    let obj20: Object = Infinity; // number类型
    let obj10: Object = Symbol('id');
    let obj12: Object = true;

    // {}：是Object类型的简写
}

{
    class User {
        name: string = 'ck';
    }

    enum Earth {
        East,
        South,
        West,
        North
    }

    // 引用类型
    let obj1: object = {};
    let obj2: object = { name: 'ck'};
    let obj13: object = new class extends User{};
    let obj4: object = new Date();
    let obj5: object = new Object();
    let obj16: object = User;
    let obj3: object = new User();
    let obj11: object = new Function();
    let obj14: object = new RegExp('\\d+');
    let obj15: object = /^\d+$/;
    let obj22: Object = [1,'ck', {name: 'ck', flag: true}, () => {}]
    let obj23: {} = Earth; // 枚举实际上是一个对象字面量

    
    let obj6: object = null;
    let obj7: object = undefined;
    let obj8: object = 'str';
    let obj9: object = 12;
    let obj21: object = NaN; // number类型
    let obj20: object = Infinity; // number类型
    let obj10: object = Symbol('id');
    let obj12: object = true;


    // object：表示引用类型
    // 引用类型不包括：基本类型[number,string,boolean,symbol,null,undefined]
}